The present invention relates to systems, methods and computer program products that capture the characteristics of a business and physical concerns of a distributed computing environment in an extensible manner that is actionable by ad-hoc processors.
In a typical application development environment, a software architect creates software applications, e.g., using conventional development tools. However, the development environment from which a new application is developed is often different from an operations environment, e.g., a data center, which deploys the developed application. In this regard, architects within the operations environment are typically burdened with the responsibility of carrying the developed application into operations. However, the architects within the operations environment often do not have first-hand knowledge of the developed artifacts, e.g., the details, requirements specifications, configuration directives, etc., associated with the application to be deployed.
Additionally, configuration information necessary to deploy the developed application in the target operations environment is typically maintained in the form of non-integrated information, such as notes, word processing documents, spreadsheets, and other formats that lack a formal construct. This can result in difficulty for successful deployment of the application within the operations environment, especially when that entity is forced to deal with solving configuration problems that arise from incompatibilities in the requirements of the developed application and the capabilities provided by the target operations environment. For example, a failure to check a developed application against a corresponding target environment may result in an application that cannot be deployed or replicated in different solutions or locations. This may result in a requirement that the application be re-architected to accommodate the target deployment environment.
As such, incompatibility issues can arise between applications created with conventional development tools and their target deployment environment. Moreover, these problems persist throughout the lifecycle of the application and can reoccur with the movement of an application during different stages of its lifecycle, including for example, movement of the application from development to unit testing and from unit testing to integration into the production environment(s).